When a new software product is released to replace an old product (e.g., core objects in a platform code have been changed), customer code running on the old product may be incompatible with the new product. Appropriate change to the customer code (e.g., objects in the customer code dependent on the changed core objects in the platform code) are needed in order to migrate the customer code to the new product.